package adapter

import "fmt"

type Huntable interface {
	Hunt()
}

// 狮子类
type Lion struct{}

func (r *Lion) Roar() {
	fmt.Println("Lion Roars......")
}

// 野狗类
type WildDog struct {
}

func (r *WildDog) Bark() {
	fmt.Println("WildDog Barks......")
}

// 狮子适配器
type LionAdapter struct {
	lion *Lion
}

func (r *LionAdapter) Hunt() {
	r.lion.Roar()
	fmt.Println("Hunting Lion......")
}

// 野狗适配器
type WildDogAdapter struct {
	wildDog *WildDog
}

func (r *WildDogAdapter) Hunt() {
	r.wildDog.Bark()
	fmt.Println("Hunting WildDog......")
}
